package com.dhcc.bpm.modules.orga.vo;

import com.dhcc.bpm.modules.orga.entity.App;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.NullSerializer;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;
import java.util.List;

/**
 * @ClassName AppVO
 * @Description 应用/渠道信息视图实体类
 * @Author daina
 * @Date 2020/2/24 19:25
 * @Version V1.0
 * @Copyright: 2020 东华软件 . All rights reserved.
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "AppVO对象", description = "应用/渠道信息")
public class AppVO extends App {
	private static final long serialVersionUID = 1L;
	/**
	 * 控制ID
	 */
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	private Long opcControlId;
	/**
	 * 控制范围
	 */
	private String controlScope;
	/**
	 * 限流ID
	 */
	private String flowId;
	/**
	 * 是否启用
	 */
	private String useFlag;
	/**
	 * 刷新标志
	 */
	private String refreshFlag;
	/**
	 * ID
	 */
	private String testApplyId;
	/**
	 * 生产环境ID
	 */
	private String produceApplyId;
	/**
	 * 申请测试开始时间
	 */
	private Date testBeginTime;
	/**
	 * 申请测试结束时间
	 */
	private Date testEndTime;
	/**
	 * 申请说明
	 */
	private String applyMsg;
	/**
	 * 流程id
	 */
	@ApiModelProperty(value = "流程id")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	private Long processId;
	/**
	 *  响应次数
	 */
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	private Long num;
	/**
	 *  成功次数
	 */
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	private Long successNum;
	/**
	 *  成功率(返回百分比)
	 */
	private String successRate;
	/**
	 * 平均响应时间
	 */
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	private Double responseTime;
	/**
	 * 支付账号
	 */
	@ApiModelProperty(value = "支付账号")
	private String payAccount;


	/**
	 * 开始时间
	 */
	@ApiModelProperty(value = "开始时间")
	private String startDate;

	/**
	 * 结束时间
	 */
	@ApiModelProperty(value = "结束时间")
	private String endDate;
	/**
	 * 创建人
	 */
	@ApiModelProperty(value = "创建人")
	private String account;
	/**
	 * 限流创建时间
	 */
	@ApiModelProperty(value = "限流创建时间")
	private String flowCreateTime;

	/**
	 * 联系方式
	 */
	private String contactInfo;
	/**
	 * api的主键
	 */
	private Long opcApiId;
	/**
	 * 应用产品的主键
	 */
	private Long opcProductId;
	private Long baseProductId;
	private Long opcSysId;
	/**
	 * 渠道的主键
	 */
	private Long opcAppId;
	/**
	 * 测试服务器IP地址
	 */
	private String ip;

	private String validTime;

	private String testValidTime;

	private Long applyQps;
	private Long approvalQps;

	private List<String> productApiList;
}
